运行时资源替换(Runtime Asset Swapping)
概览
在 Unreal 中,Referenced 资源会映射为 Unreal 对象:
URiveImageAssetURiveFontAsset
加载方式
当 .riv 包含 Referenced 资源时:
- 插件按
asset ID跟踪 - 导入时在
URiveFile旁生成对应资源对象 - 运行时通过类型化 API 注入字节数据
图片:
LoadTexture(UTexture2D*)LoadImageBytes(const TArray<uint8>&)
字体:
LoadFontFace(UFontFace*)LoadFontBytes(const TArray<uint8>&)
推荐流程
- 在 Rive Editor 把需要外置的资源设为 Referenced
- 导入
.riv到 Unreal - 在 Content Browser 找到生成对象(通常
AssetName-AssetId) - 在 Blueprint/C++ 持有这些对象引用
- 播放前或播放中调用加载函数
C++ 头文件
#include "Rive/Assets/RiveImageAsset.h"
#include "Rive/Assets/RiveFontAsset.h"
注意事项
- Referenced 解析基于 ID
- 如果你做的是“按实例动态换图”,优先考虑 image data binding 路径
排障
- 替换无效:确认是否操作了正确的
AssetName-AssetId - bytes 加载失败:检查格式与字节内容是否有效
- 重新导入
.riv后:重新确认生成对象与引用是否变化